﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IStudentPlanRepository.cs" company="">
//   Copyright (c) 2010/2011 All Right Reserved
// </copyright>
// <summary>
//   Contains IStudentPlanRepository class declaration.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace iBuproModel.Repositories.Interfaces
{
    using System.Collections.Generic;

    /// <summary>
    /// Interface for student plan repository.
    /// </summary>
    public interface IStudentPlanRepository : IGenericRepository<StudentPlan>
    {
        new void Update(StudentPlan plan);
        IEnumerable<Subject> GetSubjectsForStudentPlan(StudentPlan studentplan);

        /// <summary>
        /// Updates subjects from multiselect list
        /// </summary>
        /// <param name="plan">Studentplan for update</param>
        /// <param name="ids">list od subjects Ids to be updated</param>
        void UpdateSubjectList(StudentPlan plan, IEnumerable<int> ids);
        void RemoveSubjects(StudentPlan plan);
        IEnumerable<StudentField> GetStudentFieldsForStudentPlan(StudentPlan studentplan);
        void UpdateStudentFieldList(StudentPlan plan, IEnumerable<int> ids);
        void RemoveStudentFields(StudentPlan plan);
    }
}
